#ifndef DICETHREAD_H
#define DICETHREAD_H

#include <QThread>
#include <QMutex>

class DiceThread : public QThread
{
    Q_OBJECT
public:
    explicit DiceThread(QObject *parent = nullptr);

    //将之前run中的执行逻辑写到此方法中去
    void methodToThreadRun();
protected:
    void run() Q_DECL_OVERRIDE; //线程任务

public:

    void diceBegin();   //掷一次骰子
    void dicePause();   //暂停
    void stopThread();  //结束线程

    //同步调用
    bool readValue(int *seq, int *diceValue); //用于主线程读取数据的函数

Q_SIGNALS:
    //异步时调用
    void newValue(int seq, int diceValue); //产生新点数的信号

private:
    QMutex mutex; //互斥量
    int m_seq = 0;    //掷骰子次数序号
    int m_diceValue;//骰子点数
    bool m_Paused = true;//暂停
    bool m_stop = false;//停止
};

#endif // DICETHREAD_H
